#define _CRT_SECURE_NO_WARNINGS 1
//#include <iostream>
//#include <vector>
//using namespace std;
//typedef long long LL;
//int main()
//{
//    string s = "";
//    int t;
//    cin >> t;
//    while (t--)
//    {
//        LL n;
//        cin >> n;
//        vector<char> ans;
//        LL res = 0;
//        LL flag = 10460353203;
//        for (int i = 21 ;i >= 0; flag /= 3,i --)
//        {
//            if (n < flag * 3 && n >= flag)
//            {
//                if (ans.empty())
//                {
//                    res = flag;
//                    ans.push_back('w');
//
//                }
//            }
//              
//            if (!ans.empty())
//            {
//                if (res > n)
//                {
//                    ans.push_back('w');
//                    res -= flag;
//                }
//                else if (res < n)
//                {
//                    ans.push_back('m');
//                    res += flag;
//                }
//                else
//                {
//                    ans.push_back('b');
//                }
//            }
//        }
//        ans.reserve(ans.size());
//
//        for (int i = 0; i < ans.size(); i++)
//            cout << ans[i];
//        cout << endl;
//    }
//    return 0;
//}
#include <iostream>

using namespace std;
int ad, hp;
int main()
{
    cin >> ad >> hp;
    int in = 0;
    int a = 1, d = 0;
    while (a < hp && d < ad)
    {
        int x = hp;
        while (x)
        {
            x -= a;
            if (!x) break;
            in += ad;
        }
        if (a == 1)
        {
            a++;
            continue;
        }
        d++;
    }

    cout << in;
    return 0;
}